package cn.livingCloud.service;

import cn.livingCloud.dto.*;
import cn.livingCloud.dto.front.CaseAccusationFrontFromDto;
import cn.livingCloud.dto.front.CaseAssignmentFrontFormDto;
import cn.livingCloud.dto.front.CaseFinishFrontFormDto;
import cn.livingCloud.dto.front.MyCaseFrontListDto;
import cn.livingCloud.entity.core.CaseStatus;

/**
 * Created by DingJie on 2016/6/2.
 */
public interface CaseService {
    void loadCaseList(CaseListDto listDto);

    CaseInfoDto loadCaseInfo(String infoDto);

    CaseImageListDto loadImageList(String uuid, boolean result);

    CaseRecordsListDto loadRecords(String uuid);

    CaseFormDto loadCaseFromDto(String uuid, String employeeUuid);

    void edit(CaseFormDto formDto);

    CaseCommentListDto loadComments(String uuid);

    JsonDto submitComments(CaseCommentFormDto formDto);

    CaseCommentDto disableComments(String uuid);

    CaseCategoryChangeFormDto loadChangeCategoryForm(String uuid);

    JsonDto changeCategory(CaseCategoryChangeFormDto formDto);

    CaseReportFormDto loadReportForm(String uuid);

    JsonDto reportCase(CaseReportFormDto formDto);

    CaseDto loadContent(String uuid);

    boolean checkUnModify(String caseUuid);

    JsonDto cancelCase(CaseCancelFormDto formDto);

    JsonDto finishCase(CaseFinishFormDto formDto);

    CaseAssignmentFormDto loadAssignmentForm(String caseUuid, String deptUuid);

    JsonDto assignmentCase(CaseAssignmentFormDto formDto);

    CaseAccusationFrontFromDto loadFrontFromDto(String request);

    String accusationCaseFront(CaseAccusationFrontFromDto formDto);

    void getMyCaseFrontList(MyCaseFrontListDto listDto);

    CaseFrontInfoDto loadFrontInfo(String uuid);

    CaseCommentSubmitJsonDto submitFrontComments(CaseCommentFormDto formDto);

    CaseAssignmentFrontFormDto loadAssignmentFrontForm(String caseUuid, String deptUuid);

    CasePendingFormDto loadPendingForm(String uuid);

    CaseStatus getCaseStatus(String caseUuid);

    JsonDto pendingCase(CasePendingFormDto formDto);

    CaseProfileDto loadCaseProfile();

    CaseFinishFrontFormDto loadFinishFrontForm(String uuid);
}
